﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EWS
{
    public class Limit
    {
        public uint getLimitLevel(PatientData aktuelleDaten)//Funktion berechnet die jeweiligen Scorepunkte der Messwerte, addiert sie und gibt die Kennzahl für den Patientenzustand zurück
        {
                 //Variablen für die Scorepunktwerte, siehe Tabelle 1.0 Scorepunkte
                 uint pulsScore = 0;//0 ist Standard - Scorepunkt = Puls in keinem gefährlichen Wertebereich
                 uint blutdruckScore = 0;
                 uint atemfrequenzScore = 0;
                 uint sauerstoffsaettigungScore = 0;
                 uint temperaturScore = 0;
                 uint gesundheitsZustandScore = 0;
                 uint zustand = 1;


                        
                        //........................................Scorepunktvergabe für den Puls..........................................

                        


                        //Scorepunkt Puls = 1 wenn..

                        if (aktuelleDaten.Puls >= 40 && aktuelleDaten.Puls <= 50)
                        {
                            pulsScore = 1;
                        }

                        if (aktuelleDaten.Puls >= 101 && aktuelleDaten.Puls <= 111)
                        {
                            pulsScore = 1;
                        }


                        //Scorepunkt Puls = 2 wenn..

                        if (aktuelleDaten.Puls > 111 && aktuelleDaten.Puls < 130)
                        {
                            pulsScore = 2;
                        }

                        if (aktuelleDaten.Puls < 40)
                        {
                            pulsScore = 2;
                        }


                        //Scorepunkt Puls = 3 wenn..

                        if (aktuelleDaten.Puls >= 130)
                        {
                            pulsScore = 3;
                        }


            
                        //........................................Scorepunktvergabe für den Blutdruck..........................................

            
                 

                        //Scorepunkt Blutdruck = 1 wenn..

                        if (aktuelleDaten.Blutdruck > 80 && aktuelleDaten.Blutdruck <= 100)
                        {
                            blutdruckScore = 1;
                        }



                        
                        //Scorepunkt Blutdruck = 2 wenn..

                        if (aktuelleDaten.Blutdruck >= 200)
                        {
                            blutdruckScore = 2;
                        }


                        if (aktuelleDaten.Blutdruck <= 80 && aktuelleDaten.Blutdruck > 70)
                        {
                            blutdruckScore = 2;
                        }



                        //Scorepunkt Blutdruck = 3 wenn..

                        if (aktuelleDaten.Blutdruck <= 70)
                        {
                            blutdruckScore = 3;
                        }


                        //........................................Scorepunktvergabe für den Atemfrequenz..........................................

            
                        



                        //Scorepunkt Atemfrequenz = 2 wenn..

                        if (aktuelleDaten.Atemfrequenz <= 8)
                        {
                            atemfrequenzScore = 2;
                        }


                        if (aktuelleDaten.Atemfrequenz >= 25 && aktuelleDaten.Atemfrequenz < 30)
                        {
                            atemfrequenzScore = 2;
                        }



                        //Scorepunkt Atemfrequenz = 3 wenn..

                        if (aktuelleDaten.Atemfrequenz >= 30)
                        {
                            atemfrequenzScore = 3;
                        }


                        //........................................Scorepunktvergabe für den Sauerstoffsaettigung..........................................

            
                        
             

                        //Scorepunkt Sauerstoffsaettigung = 1 wenn..

                        if (aktuelleDaten.Sauerstoffsaettigung > 90 && aktuelleDaten.Sauerstoffsaettigung <= 94)
                        {
                            sauerstoffsaettigungScore = 1;
                        }

                     
              
              
            
                        //Scorepunkt Sauerstoffsaettigung = 2 wenn..

                        if (aktuelleDaten.Sauerstoffsaettigung > 88 && aktuelleDaten.Sauerstoffsaettigung <= 90)
                        {
                            sauerstoffsaettigungScore = 2;
                        }

                        


                        
                        //Scorepunkt Sauerstoffsaettigung = 3 wenn..

                        if (aktuelleDaten.Sauerstoffsaettigung <= 88)
                        {
                            sauerstoffsaettigungScore = 3;
                        }

            
            

            //........................................Scorepunktvergabe für den Temperatur..........................................


            
            


            //Scorepunkt Temperatur = 1 wenn..

            if (aktuelleDaten.Temperatur >= 37.5f && aktuelleDaten.Temperatur < 38.5f)
            {
                temperaturScore = 1;
            }


            if (aktuelleDaten.Temperatur > 35.0f && aktuelleDaten.Temperatur <= 35.9f)
            {
                temperaturScore = 1;
            }



            //Scorepunkt Temperatur = 2 wenn..

            if (aktuelleDaten.Temperatur <= 35.0f || aktuelleDaten.Temperatur >= 38.5f)
            {
                temperaturScore = 2;
            }


            


            //........................................Berechnung Scorepunkt des Gesundheitszustandes..........................................

            gesundheitsZustandScore = pulsScore + blutdruckScore + atemfrequenzScore + sauerstoffsaettigungScore + temperaturScore;

            if (gesundheitsZustandScore < 2)
            {
                zustand = 1;//grün
            }
            if(gesundheitsZustandScore >= 2 && gesundheitsZustandScore < 4)
            {
                zustand = 2;//gelb
            }
           
            if(gesundheitsZustandScore >= 4 && gesundheitsZustandScore < 6)
            {
                zustand = 3;//orange
            }
            
            if(gesundheitsZustandScore >= 6)
            {
                zustand = 4;//rot
            }
            
            
            return zustand;//  1 = Grün  ////  2 = Gelb  ////  3 = Orange  ////  4 = Rot


        }//end of function 


    }//end of class
}
